import request from '@/config/axios'
import type {Dayjs} from 'dayjs';

/** 设计-视觉工单信息 */
export interface VisualOrder {
    id: number; // ID
    remark: string; // 备注
    type: string; // 工单类型
    score?: number; // 积分
    addScore: number; // 加分
    details: string; // 明细数据
    productName: string; // 产品名称
    productCode: string; // 产品编码
    sendUserId: string; // 派单人员
    sendDeptId: string; // 派单部门
    sendEndDatetime: string | Dayjs; // 发起预计处理完成时间
    state: string; // 状态
    priority: string; // 优先级
    demandDesc: string; // 需求描述
    demandImg: string; // 需求图片
    demandFile: string; // 需求附件
    takeEndDatetime: string | Dayjs; // 接收预计处理完成时间
    deliveryUserId: string; // 派单人员
    deliveryDatetime: string | Dayjs; // 派单时间
    takeDatetime: string | Dayjs; // 接单时间
    takeUserId: string; // 接单人员
    finishResult: string; // 完成结果
    finishImg: string; // 完成图片
    finishFile: string; // 完成附件
    finishDatetime: string | Dayjs; // 完成时间
    outTrackId: string; // 卡片实例id
    auditResult: string; // 审核结果
    auditUserId: string; // 审核人
    auditRemark: string; // 审核备注
    auditDatetime: string | Dayjs; // 审核时间
}

// 设计-视觉工单 API
export const VisualOrderApi = {
    // 查询设计-视觉工单分页
    getVisualOrderPage: async (params: any) => {
        return await request.get({url: `/design/visual-order/page`, params})
    },

    // 查询设计-视觉工单详情
    getVisualOrder: async (id: number) => {
        return await request.get({url: `/design/visual-order/get?id=` + id})
    },

    // 新增设计-视觉工单
    createVisualOrder: async (data: VisualOrder) => {
        return await request.post({url: `/design/visual-order/create`, data})
    },

    // 新增设计-视觉工单
    takeScatteredVisualOrder: async () => {
        return await request.post({url: `/design/visual-order/takeScatteredVisualOrder`})
    },


    // 修改设计-视觉工单
    updateVisualOrder: async (data: VisualOrder) => {
        return await request.put({url: `/design/visual-order/update`, data})
    },

    // 删除设计-视觉工单
    deleteVisualOrder: async (id: number) => {
        return await request.delete({url: `/design/visual-order/delete?id=` + id})
    },

    /** 批量删除设计-视觉工单 */
    deleteVisualOrderList: async (ids: number[]) => {
        return await request.delete({url: `/design/visual-order/delete-list?ids=${ids.join(',')}`})
    },

    // 导出设计-视觉工单 Excel
    exportVisualOrder: async (params) => {
        return await request.download({url: `/design/visual-order/export-excel`, params})
    },

    // 接收视觉工单
    takeVisualInfo: async (data: VisualOrder) => {
        return await request.post({url: `/design/visual-order/takeVisualInfo`, data})
    },

    // 回退视觉工单
    rollbackVisualInfo: async (data: VisualOrder) => {
        return await request.post({url: `/design/visual-order/rollbackVisualInfo`, data})
    }
    ,
    // 关闭视觉工单
    closeVisualInfo: async (data: VisualOrder) => {
        return await request.post({url: `/design/visual-order/closeVisualInfo`, data})
    },
    // 提交视觉工单
    submitVisualInfo:
        async (data: VisualOrder) => {
            return await request.post({url: `/design/visual-order/submitVisualInfo`, data})
        },

    //审核视觉工单
    auditVisualInfo:
        async (data: VisualOrder) => {
            return await request.post({url: `/design/visual-order/auditVisualInfo`, data})
        },

    getDesignScoreSum: async (params: any) => {
        return await request.get({url: `/design/visual-order/getDesignScoreSum`, params})
    },


}
